1. Technical Field
The present invention relates generally to the global Internet network and more particularly to the Internet servers of World Wide Web (WWW) sites organized as a cluster or group of servers forming a single entity and equipped with a front-end load balancer.
2. Description of the Related Art
Internet servers supporting critical applications such as e-commerce, financial transactions, database access, corporate intranets, and other key functions are committed to run twenty-four hours a day. An important consideration is the scalability of performance to handle large volumes of client requests without creating unwanted delays. To cope with these requirements, server clustering combined with load balancing, is the standard solution adopted by all service providers. Hence, web sites are organized as a cluster of servers. These clusters are built from a group of independent servers and are managed as a single system. To be defined as a cluster of servers, two or more connected servers are run with cluster management software aimed at providing services such as failure detection, recovery, load balancing, and the ability to manage the servers as a single system. Indeed, server clustering provides a number of important benefits. These benefits include: improved availability, easier maintainability, and cost-effective scalability. Load balancing is especially essential for scaling the performance of a server enabling a fair distribution of client requests across multiple servers within the cluster. Therefore, if an individual server fails, the load balancing mechanism dynamically redistributes the load among the remaining servers. Load balancing is used to enhance scalability, which improves throughput while keeping response times low. When more traffic must be handled, this is simply achieved by adding computers to the cluster as necessary without having to interrupt the service provided by the site.
A number of load balancing methods exist. The use of the domain name system (DNS), the on-line distributed data base system used to map human-readable machine names into IP addresses, permits an implementation of a popular, yet rudimentary, solution for enabling a limited form of load balancing for a cluster of servers. Because this solution uses DNS to map incoming IP requests to a defined server (or set of servers) in a round robin fashion, it does not function effectively as a high availability solution. In the event of a server failure, round robin DNS keeps forwarding requests to the failed server until it is manually removed from the DNS.
To overcome this problem, hardware load-balancers typically use a technique called Network Address Translation (NAT), which exposes a single cluster IP address to clients and manages to transparently forward data for the individual servers by translating Internet protocol (IP) addresses and re-sending network packets. Hence, this technique encounters the serious drawback of creating a single point of failure between the cluster and the clients. A backup load balancer becomes necessary, but this adds complexity and requires time for the backup to be activated in the event of an emergency. And, despite the fact hardware load-balancers are intrinsically fast, address translation imposes an overhead, which limits the bandwidth.
Software-based load balancing products, which employ various dispatching models for load balancing, face the same disadvantages. Whether implemented by NAT or with other methods (such as hypertext transfer protocol (HTTP) redirects), software-based products also introduce an overhead which limits throughput and restricts performance to an even greater extent. Despite whether a front end load balancing is implemented in hardware or software, the throughput of the entire cluster becomes bounded by the speed and processing power of the sole dispatching function placed in front of the individual servers.
Therefore, despite all of the advantages resulting from the implementation of an Internet server under the form of a cluster of individual servers, the front-end load balancer become a bottleneck in the system. This configuration does not scale well and becomes a single point of failure.